//回文字符串是指一个字符串正读和反读都一样的文本序列。
//这意味着如果你将字符串反转，它看起来和原来的字符串完全相同。
//回文字符串可以包含字母、数字和标点符号，但在检查一个字符串是否为回文时，通常会忽略大小写、空格和标点符号。
function isPalindrome(str) {
    // 去除字符串中的非字母数字字符，并转换为小写
    var cleaned = str.replace(/[\W_]/g, '').toLowerCase();
    
    // 获取清理后的字符串长度
    var len = cleaned.length;
    
    // 检查字符串是否与其反转相同
    for (var i = 0; i < len / 2; i++) {
        if (cleaned[i] !== cleaned[len - 1 - i]) {
            return false; // 如果发现不匹配的字符，返回false
        }
    }
    
    return true; // 如果所有字符都匹配，返回true
}

// 使用示例
console.log(isPalindrome("A man, a plan, a canal, Panama")); // 应该返回true
console.log(isPalindrome("race a car")); // 应该返回false